package com.dfbz.homework2;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.ArrayList;

public class demo {
    public static void main(String[] args) throws NoSuchMethodException, InvocationTargetException, IllegalAccessException, InstantiationException {
        ArrayList<Integer> list=new ArrayList<>();
        //利用反射机制为泛型的集合 存放一个String类型的值,
        //获取集合的字节码对象
        // T newInstance() ：创建此 Class 对象所表示的类的一个新实例。要求：类必须有public的无参 数构造方法
        Class<? extends ArrayList> aClass = list.getClass();
        //字节码对象 创建集合的实例
        ArrayList arrayList = aClass.newInstance();
        //集合获取全部方法。
        Method add = aClass.getDeclaredMethod("add", Object.class);
        //泛型存放类存放一个为String1的对象
        add.invoke(arrayList,"String");
        System.out.println(arrayList);
    }
}
